class Cache {
    constructor() {
        this.cache = new Map();
        this.defaultTTL = 3600000; // 默认1小时过期
    }

    // 设置缓存
    set(key, value, ttl = this.defaultTTL) {
        const item = {
            value,
            expiry: Date.now() + ttl
        };
        this.cache.set(key, item);
    }

    // 获取缓存
    get(key) {
        const item = this.cache.get(key);
        if (!item) return null;
        
        if (Date.now() > item.expiry) {
            this.cache.delete(key);
            return null;
        }

        return item.value;
    }

    // 删除缓存
    delete(key) {
        this.cache.delete(key);
    }

    // 清空所有缓存
    clear() {
        this.cache.clear();
    }

    // 清理过期缓存
    cleanup() {
        for (const [key, item] of this.cache.entries()) {
            if (Date.now() > item.expiry) {
                this.cache.delete(key);
            }
        }
    }
}

// 创建单例实例
const cacheInstance = new Cache();

// 定期清理过期缓存（每小时）
setInterval(() => {
    cacheInstance.cleanup();
}, 3600000);

module.exports = cacheInstance; 